package com.yonyougov.devops.cruxcisupport.roleapp;

import com.yonyougov.devops.cruxcisupport.roleapp.vo.GetAppIdsByRoleIdsReqVo;
import com.yonyougov.devops.cruxcisupport.roleapp.vo.RoleAppPageByRoleIdDto;
import com.yonyougov.devops.cruxcisupport.roleapp.vo.RoleAppVo;
import com.yonyougov.devops.fwc.core.dao.BaseDao;

import java.math.BigInteger;
import java.util.List;

/**
 * t_role_app数据层
 */
public interface RoleAppDao extends BaseDao<RoleAppEntity, BigInteger> {
    //<!--用户自定义代码开始-->

    /**
     * 查询角色和应用的关联关系
     * 条件: 角色id, 应用名称
     *
     * @param roleAppPageByRoleIdDto [com.yonyougov.devops.cruxcisupport.roleapp.vo.RoleAppPageByRoleIdDto]
     * @return [java.util.List]
     */
    int countRoleAppByRoleId(RoleAppPageByRoleIdDto roleAppPageByRoleIdDto);

    /**
     * 查询角色和应用的关联关系
     * 条件: 角色id, 应用名称
     *
     * @param roleAppPageByRoleIdDto [com.yonyougov.devops.cruxcisupport.roleapp.vo.RoleAppPageByRoleIdDto]
     * @return [java.util.List]
     */
    List<RoleAppVo> findRoleAppPageByRoleId(RoleAppPageByRoleIdDto roleAppPageByRoleIdDto);

    void addBatch(List<RoleAppEntity> params);

    void deleteBatchRoleAppByIds(List<BigInteger> ids);

    List<BigInteger> getAppIdsByRoleIds(GetAppIdsByRoleIdsReqVo params);

    List<BigInteger> getCurrentUserAppIds(List<BigInteger> roleIds);

    //<!--用户自定义代码结束-->
}
